/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.celiosilva.simbanc.controller.cliente;

import com.celiosilva.simbanc.arquitetura.Sessao;
import com.celiosilva.simbanc.beans.ClienteFisico;
import com.celiosilva.simbanc.business.ClienteBusiness;
import com.celiosilva.simbanc.business.seguranca.Permissao;
import com.celiosilva.simbanc.business.util.Sucesso;
import com.celiosilva.simbanc.exceptions.AcessoNegadoException;
import com.celiosilva.simbanc.exceptions.SimbancException;
import com.celiosilva.simbanc.util.Validador;
import com.celiosilva.simbanc.view.ClienteView;

/**
 *
 * @author celio@celiosilva.com
 */
public class SalvarClienteFisicoController extends ClienteView {

    public SalvarClienteFisicoController() throws AcessoNegadoException {
        Sessao.getInstance().validarAcesso(this);
    }

    @Override
    protected String getTitulo() {
        return "Cadastrar Cliente Físico";
    }

    @Override
    protected String getRotuloIdentificador() {
        return "CPF:";
    }

    @Override
    protected void salvarCliente() {
        try {
            Validador.validarPreenchimentoObrigatorio(this.txtNome, this.txtSobrenome, this.txtCidade);
            ClienteFisico cliente = (ClienteFisico) this.preencherBeanCliente(new ClienteFisico());
            cliente.setCpf(this.txtIdentificador.getText());
            Sucesso sucesso = ClienteBusiness.getInstance().cadastrarCliente(cliente);
            this.mostrarAviso(sucesso);
            this.limparTela();
        } catch (SimbancException ex) {
            this.mostrarAviso(ex);
        }
    }

    @Override
    protected void consultarCliente() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected void bloquearCliente() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected void cancelarCliente() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected void reativarCliente() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected String getFormatoMascaraIdentificador() {
        return "###.###.###-##";
    }

    @Override
    public Permissao getPermissaoAtribuida() {
        return Permissao.CADASTRAR_CLIENTE_FISICO;
    }

}
